package com.luhui.codereview.utils

import java.net.InetAddress
import java.net.NetworkInterface
import kotlin.experimental.and

/**
 * @author luhui
 * @version 1.0
 * @date 2019/11/9 23:24
 */
class IpUtils{
    companion object {
        fun getMacAddress():String{
            // 获得网络接口对象（即网卡），并得到mac地址，mac地址存在于一个byte数组中。
            val mac = NetworkInterface.getByInetAddress(InetAddress.getLocalHost()).hardwareAddress

            // 下面代码是把mac地址拼装成String
            val sb = StringBuffer()

            for (i in mac.indices) {
                if (i != 0) {
                    sb.append("-")
                }
                // mac[i] & 0xFF 是为了把byte转化为正整数
                val s = Integer.toHexString((mac[i] and 0xFF.toByte()).toInt())
                sb.append(if (s.length == 1) 0.toString() + s else s)
            }

            // 把字符串所有小写字母改为大写成为正规的mac地址并返回
            return sb.toString().toUpperCase()
        }
    }
}
